import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import './styles/global.scss'
import { RouterProvider } from 'react-router-dom'
import { TokenProvider } from '@/context/tokenContext'
import { UserInfoProvider } from '@/context/userInfoContext'
import router from '@/router/index'
import './styles/iconfont.scss'
// import { message } from 'antd'
// 导入worbox-window的注册方法
// import { registerSW } from 'virtual:pwa-register'

createRoot(document.getElementById('root')).render(
  <StrictMode>
    <TokenProvider>
      <UserInfoProvider>
        <RouterProvider router={router} />
      </UserInfoProvider>
    </TokenProvider>
  </StrictMode>,
)

// 目前弃用，当自定义service-worker缓存策略时需要使用到以下注册逻辑
// // 注册Serve Worker（仅生产环境生效，开发环境自动忽略）
// const updateSW = registerSW({
//   // 当SW有更新时，触发回调（）
//   onNeedRefresh() {
//     // 提示用户更新
//     if (window.confirm('Quick-Canvas 有新版本，是否刷新以应用更新？')) {
//       updateSW() // 激活新版本
//     }
//   },
//   // 当SW安装完成且支持离线时，触发回调
//   onOfflineReady() {
//     message.info('Quick-Canvas 已支持离线使用，断网后仍可访问历史画布！')
//   },
//   // 注册失败时的错误处理
//   onRegisterError(err) {
//     console.error('[SW 注册失败]：', err)
//     alert('离线功能初始化失败，可能影响离线使用体验')
//   },
// })
